package structs

type ConfigSet struct {
	Storefront              string `yaml:"storefront"` 
	MediaUserToken          string `yaml:"media-user-token"`
	AuthorizationToken      string `yaml:"authorization-token"`
	Language                string `yaml:"language"`
	SaveLrcFile             bool   `yaml:"save-lrc-file"`
	LrcType                 string `yaml:"lrc-type"`
	LrcFormat               string `yaml:"lrc-format"`
	SaveAnimatedArtwork     bool   `yaml:"save-animated-artwork"`
	EmbyAnimatedArtwork     bool   `yaml:"emby-animated-artwork"`
	EmbedLrc                bool   `yaml:"embed-lrc"`
	EmbedCover              bool   `yaml:"embed-cover"`
	SaveArtistCover         bool   `yaml:"save-artist-cover"`
	CoverSize               string `yaml:"cover-size"`
	CoverFormat             string `yaml:"cover-format"`
	AlacSaveFolder          string `yaml:"alac-save-folder"`
	AtmosSaveFolder         string `yaml:"atmos-save-folder"`
	AacSaveFolder           string `yaml:"aac-save-folder"`
	AlbumFolderFormat       string `yaml:"album-folder-format"`
	PlaylistFolderFormat    string `yaml:"playlist-folder-format"`
	ArtistFolderFormat      string `yaml:"artist-folder-format"`
	SongFileFormat          string `yaml:"song-file-format"`
	ExplicitChoice          string `yaml:"explicit-choice"`
	CleanChoice             string `yaml:"clean-choice"`
	AppleMasterChoice       string `yaml:"apple-master-choice"`
	MaxMemoryLimit          int    `yaml:"max-memory-limit"`
	DecryptM3u8Port         string `yaml:"decrypt-m3u8-port"`
	GetM3u8Port             string `yaml:"get-m3u8-port"`
	GetM3u8Mode             string `yaml:"get-m3u8-mode"`
	GetM3u8FromDevice       bool   `yaml:"get-m3u8-from-device"`
	AacType                 string `yaml:"aac-type"`
	AlacMax                 int    `yaml:"alac-max"`
	AtmosMax                int    `yaml:"atmos-max"`
	LimitMax                int    `yaml:"limit-max"`
	UseSongInfoForPlaylist  bool   `yaml:"use-songinfo-for-playlist"`
	DlAlbumcoverForPlaylist bool   `yaml:"dl-albumcover-for-playlist"`
	MVAudioType             string `yaml:"mv-audio-type"`
	MVMax                   int    `yaml:"mv-max"`
	ConvertAfterDownload       bool   `yaml:"convert-after-download"`
	ConvertFormat              string `yaml:"convert-format"`
	ConvertKeepOriginal        bool   `yaml:"convert-keep-original"`
	ConvertSkipIfSourceMatch   bool   `yaml:"convert-skip-if-source-matches"`
	FFmpegPath                 string `yaml:"ffmpeg-path"`
	ConvertExtraArgs           string `yaml:"convert-extra-args"`
	ConvertWarnLossyToLossless bool   `yaml:"convert-warn-lossy-to-lossless"`
}

type Counter struct {
	Unavailable int
	NotSong     int
	Error       int
	Success     int
	Total       int
}

// 艺术家页面
type AutoGeneratedArtist struct {
	Next string `json:"next"`
	Data []struct {
		ID         string `json:"id"`
		Type       string `json:"type"`
		Href       string `json:"href"`
		Attributes struct {
			Previews []struct {
				URL string `json:"url"`
			} `json:"previews"`
			Artwork struct {
				Width      int    `json:"width"`
				Height     int    `json:"height"`
				URL        string `json:"url"`
				BgColor    string `json:"bgColor"`
				TextColor1 string `json:"textColor1"`
				TextColor2 string `json:"textColor2"`
				TextColor3 string `json:"textColor3"`
				TextColor4 string `json:"textColor4"`
			} `json:"artwork"`
			ArtistName           string   `json:"artistName"`
			URL                  string   `json:"url"`
			DiscNumber           int      `json:"discNumber"`
			GenreNames           []string `json:"genreNames"`
			HasTimeSyncedLyrics  bool     `json:"hasTimeSyncedLyrics"`
			IsMasteredForItunes  bool     `json:"isMasteredForItunes"`
			IsAppleDigitalMaster bool     `json:"isAppleDigitalMaster"`
			ContentRating        string   `json:"contentRating"`
			DurationInMillis     int      `json:"durationInMillis"`
			ReleaseDate          string   `json:"releaseDate"`
			Name                 string   `json:"name"`
			Isrc                 string   `json:"isrc"`
			AudioTraits          []string `json:"audioTraits"`
			HasLyrics            bool     `json:"hasLyrics"`
			AlbumName            string   `json:"albumName"`
			PlayParams           struct {
				ID   string `json:"id"`
				Kind string `json:"kind"`
			} `json:"playParams"`
			TrackNumber  int    `json:"trackNumber"`
			AudioLocale  string `json:"audioLocale"`
			ComposerName string `json:"composerName"`
		} `json:"attributes"`
	} `json:"data"`
}